subroutine check_readsrce(cunit)
  use param
  use data_param,only:geom_exist
  use data_param,only:source_exist
  use geom_data_param,only:n_geom_obj
  use geom_data_param,only:geom_obj
  use label_data_param,only:obj_type
  implicit none

  integer,intent(in) :: cunit

  integer :: i,j,k,n,pos1,pos2,in1,in2,in3
  character(len=len_linebuf) :: str

  if (.not.source_exist) return
  if (.not.geom_exist) return
  if (n_geom_obj.eq.0) return

  in1=1
  in2=2
  in3=3

  call log_msg1(cunit,"")
  call log_msg1(cunit,"Check source data... (geom_obj)")

  do i=1,n_geom_obj
     
     pos1=0

     pos2=pos1+5
     write(str(pos1+1:pos2),'("[",i2,"]",1x)') i
     pos1=pos2

     pos2=pos1+16
     write(str(pos1+1:pos2),'("No. of sources=",i1)') &
          geom_obj(i)%diss_type
     pos1=pos2

     call log_msg1_indent(cunit,in1,str)

     do j=1,geom_obj(i)%diss_type

        pos1=0

        do k=1,geom_obj(i)%diss_n(j)
           n=geom_obj(i)%diss_obj(j)%diss_type(k)
           pos2=pos1+11
           write(str(pos1+1:pos2),'(a10,1x)') &
                obj_type(n)%name
           pos1=pos2
        end do

        pos2=pos1+4
        write(str(pos1+1:pos2),'(1x,"(",i1,")")') &
             geom_obj(i)%diss_n(j)
        pos1=pos2

        pos2=pos1+2
        write(str(pos1+1:pos2),'(1x,":")')
        pos1=pos2
        
        pos2=pos1+17
        write(str(pos1+1:pos2),'(1x,"Eb=",1pe13.5)') &
             geom_obj(i)%diss_eb(j)
        pos1=pos2

        pos2=pos1+17
        write(str(pos1+1:pos2),'(1x,"nu=",1pe13.5)') &
             geom_obj(i)%diss_nu(j)
        pos1=pos2

        pos2=pos1+17
        write(str(pos1+1:pos2),'(1x,"Rd=",1pe13.5)') &
             geom_obj(i)%diss_rd(j)

        call log_msg1_indent(cunit,in1,str(1:pos2))
     end do
  end do

  return

end subroutine check_readsrce
